<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of Calculos
 *
 * @author angye
 */

/**
 *
 * @param type $n número de incógnitas
 * @param type $a matriz con los coeficientes $a= array(25,26);
 */
function gaussJordan($numeroIncognitas, $matriz ,$incognitas) {
    $a = $matriz;
    $b = array();

    echo("\n M&EacuteTODO DE GAUSS-JORDAN <br>");
    $n = $numeroIncognitas;
    /* Fin Del Ciclo De Solicitud De Datos */
    /* Proceso Principal */
    $m = $n + 1;
    do {
        if ($a[1][1] == 0) {
            $k = $m - 1;
            for ($i = 2; $i <= $k; $i++) {
                if ($a[$i][1] != 0) {
                    for ($j = 1; $j <= $m; $j++) {
                        $apoyo = $a[$i][$j];
                        $a[$i][$j] = $a[1][$j];
                        $a[1][j] = $apoyo;
                    }
                }
            }
        } else {
            for ($j = 2; $j <= $m; $j++) {
                for ($i = 2; $i <= $n; $i++) {
                    $b[$i - 1][$j - 1] = $a[$i][$j] - $a[1][$j] * $a[$i][1] / $a[1][1];
                }
            }
            for ($j = 2; $j <= $m; $j++) {
                $b[$n][$j - 1] = $a[1][$j] / $a[1][1];
            }
            $m = $m - 1;
            for ($j = 1; $j <= $m; $j++) {
                for ($i = 1; $i <= $n; $i++) {
                    $a[$i][$j] = $b[$i][$j];
                }
            }
        }
    } while ($m > 1);
    echo("\n\n SOLUCION DEL SISTEMA\n ");
    $rta = array();
    for ($i = 1; $i <= $n; $i++) {
        $rta[$i]=$a[$i][1];
        echo "<br> ".$incognitas[$i-1] .' = '. $a[$i][1];
    }
    return $rta;
}

    function calcularCentroideX($area, $x,$y){
     
        $temp=0;
        $valorX=0; $vx=0; $sumx=0;
        for ($i = 0; $i < count($x); $i++) {
            if($i+1 == count($x)){
                $temp = $x[$i]+$x[0];
                $vx= ($x[$i]* $y[0])-($x[0]*$y[$i]);
                $sumx += $vx*$temp;
            }else{
                $temp = $x[$i]+$x[$i+1];
                $vx= ($x[$i] * $y[$i+1])-($x[$i+1]*$y[$i]);
                $sumx += $vx*$temp;
            }
        }
        if($sumx<0){
            $sumx=$sumx*-1;
        }
        $valorX=$sumx/(6 * $area);
//        echo '<br> coordenada en x '. $valorX;
        return $valorX;
    }
    
     function calcularCentroideY($area, $x,$y){
         
        $temp=0;
        $valorY=0; $vy=0; $sumy=0;
        for ($i = 0; $i < count($x); $i++) {
            if($i+1 == count($x)){
                $temp = $y[$i]+$y[0];
                $vy= ($x[$i]* $y[0])-($x[0]*$y[$i]);
                $sumy += $vy*$temp;
            }else{
                $temp = $y[$i]+$y[$i+1];
                $vy= ($x[$i] * $y[$i+1])-($x[$i+1]*$y[$i]);
                $sumy += $vy*$temp;
            }
        }
        if($sumy<0){
            $sumy=$sumy*-1;
        }
        $valorY=$sumy/(6 * $area);
        //echo '<br> coordenada en y '. $valorY;
        return $valorY;
    }
    function calcularCentroide($x1,$x2) {
    calcularArea($x1,$x2);
}
    
    function calcularArea($x1,$x2){
        
        $x = array($x1,$x1,$x2,$x2);
        $y = array(1,2,2,1);
        
        $sumx=0;
        $sumy=0;
        for ($i = 0; $i < count($x); $i++) {
             if($i+1 == count($x)){
               $sumx += $x[$i]*$y[0];
               $sumy += $y[$i]*$x[0];
            }else{
               $sumx += $x[$i]*$y[$i+1];
               $sumy += $y[$i]*$x[$i+1];
            }
             
        }
        $area = ($sumx - $sumy) /2;
        if($area<0) 
            $area = $area * -1;
       // echo '<br> area '. $area;
        
        $centroideX = calcularCentroideX($area, $x,$y);
        $centroideY = calcularCentroideY($area, $x,$y);

        return $centroideX;
    }
?>
